package com.beta.elephant.vo;

import com.beta.elephant.constant.CommEnumMgr;

/**
 * @Description TODO
 * @Author lixin
 **/
public class BaseFlowBuilder<T> {
    private CommEnumMgr.Project project;
    private CommEnumMgr.Scene scene;
    private Long gameId;
    private Long userId;
    private T data;

    public BaseFlow build() {
        BaseFlow baseFlow = new BaseFlow();
        baseFlow.setGameId(this.gameId);
        baseFlow.setUserId(this.userId);
        baseFlow.setProject(this.project);
        baseFlow.setScene(this.scene);
        baseFlow.setData(this.data);
        return baseFlow;
    }

    public BaseFlowBuilder game(Long gameId) {
        this.gameId = gameId;
        return this;
    }

    public BaseFlowBuilder user(Long userId) {
        this.userId = userId;
        return this;
    }

    public BaseFlowBuilder project(CommEnumMgr.Project project) {
        this.project = project;
        return this;
    }

    public BaseFlowBuilder scene(CommEnumMgr.Scene scene) {
        this.scene = scene;
        return this;
    }

    public BaseFlowBuilder data(T data) {
        this.data = data;
        return this;
    }

}
